Software defined Networking (SDN) is an emerging technology in which software is used to control the forwarding of network packets through physical and/or virtual networks. In the most general sense, SDN can be thought of broadly as covering any networking where a significant proportion of the network switching is not based on traditional dedicated switching hardware but instead is programmable through software technologies. More specifically, one type of SDN involves networking where the data forwarding capability (i.e. the data plane) is de-coupled from the routing, resource and other control functionality (i.e. the control plane). In this type of SDN, there may be multiple SDN switches configured to implement the data plane functions and one or more SDN Information Technology (IT) control applications (i.e. SDN controllers) configured to provide the control plane functions. A single SDN controller may control multiple SDN switches. Each SDN switch is under the control of a single SDN controller. As a result, an SDN Controller may have an end-to-end view of the network topology, and can set up data-paths (flows) spanning different equipment and locations.
Open Application Programming Interface (API) services for accomplishing the necessary communication of the control and data planes in SDN have developed and a well-known example is Openflow. An Openflow switch comprises a flow table with an action associated with each flow in the table to tell the switch how to process the flow and a secure channel that connects the switch to a usually remote SDN controller, allowing commands and pockets to be sent between the controller and the switch using the OpenFlow protocol so that flow entries can be added to, removed from and amended in the table.
An individual flow may be broadly defined by a set of field values in the data packets, for example, a particular Transmission Control Protocol (TCP) connection could be defined by all packets from a particular Medium Access Control (MAC) address field and/or Internet Protocol address field and/or port number field. Each flow entry on a given SDN switch has an action associated with it, of which three examples are, (i) forward a flow's packets to a given port (this allows packet to be routed through the network), (ii) encapsulate and forward a packet to the SDN controller of the switch (so the controller can decide if a flow should be added to a flow table) and (iii) drop this flow's packets. Unclassified packets belonging to new flows may similarly be encapsulated and forwarded to the SDN controller for classification and creation of new forwarding rules across multiple switches to create the intended flow path.
Whenever the SDN controller needs to make decisions it may consult Information Technology (IT) applications and systems that implement various protocols and decision rules. These IT applications and systems are referred to as SDN Apps, and may be inherent in the SDN controller or they may be provided as applications external to the controller, communicating with it by software linking or by various protocols. The decision rules employed by the SDN Apps are referred to as Application Policies and the supported policies and formats may be standardized or defined individually by each SDN App.
Network Functions Virtulization (NFV) is an emerging design approach for constructing Information Technology (IT) applications, particularly in the telecommunications industry. The classical approach to network architecture is based upon fragmented, purpose built hardware for implementing network functions—also known as Physical Network Functions (PNFs) (e.g. firewalls, Deep Packet Inspectors (DPI)), Network Address Translators (NAT)) which require physical installation at every site at which they are needed. In contrast, NFV aims to consolidate many network equipment types onto, for example, standardised high volume servers, switches, and storage through the implementation of Virtualised Network Functions (VNFs) in software which can run on a range of standard hardware. Furthermore, NFV aims to transform network operations because the VNFs can be dynamically moved to, or instantiated in, various locations in the network as required without the need for installation of new hardware. Furthermore, multiple PNFs and VNFs can be configured together to form a ‘service-chain’ and packets steered through each Network Function in the chain in turn.
The combination of SDN with the NFV approach can be advantageous. For example, to simplify compatibility, operation, and maintenance procedures. Moreover, the separation of the control and data planes enabled by SDN when used with NFV presents an opportuniry to provide for greater efficiency and flexibility of a network, especially in response to changing network conditions, where network flows can immediately adapt to changing/moving VNFs without having to explicitly re-configure the network.
A network service model instance models a data flow through a network. An SDN controller and its SDN Apps can use policy information to configure one or more SDN switches in a network so that data flow in the network is in accordance with the service model instance.